home *** CD-ROM | disk | FTP | other *** search
/ MACD 5 / MACD 5.bin / workbench / tools / czesc_3 / multiuser / src / library / libheader.h < prev    next >
C/C++ Source or Header  |  1994-06-29  |  4KB  |  142 lines

  1. /************************************************************
  2. * MultiUser - MultiUser Task/File Support System                *
  3. * ---------------------------------------------------------    *
  4. * Library Header                                                            *
  5. * ---------------------------------------------------------    *
  6. * © Copyright 1993-1994 Geert Uytterhoeven                        *
  7. * All Rights Reserved.                                                    *
  8. ************************************************************/
  9.  
  10.  
  11. #include "multiuser.h"
  12.  
  13.  
  14. extern char MultiUserName[];
  15. extern char MultiUserIDString[];
  16. extern UWORD MultiUserVersion;
  17. extern UWORD MultiUserRevision;
  18.  
  19.  
  20.     /*
  21.      *        Private Library Base
  22.      */
  23.  
  24. #define TASKHASHVALUE    23
  25.  
  26. struct muBase {
  27.     struct Library LibNode;
  28.     UBYTE Flags;
  29.     UBYTE Pad;
  30.     BPTR SegList;
  31.  
  32.         /*
  33.          *        The Server's Process
  34.          */
  35.  
  36.     struct Process *Server;
  37.  
  38.         /*
  39.          *        The Server's Packet MsgPort
  40.          */
  41.  
  42.     struct MsgPort *ServerPort;
  43.  
  44.         /*
  45.          *        List of Tasks and their Owner(s)
  46.          */
  47.  
  48.     struct SignalSemaphore TaskOwnerSem;
  49.     struct MinList TaskOwnerList[TASKHASHVALUE];
  50.  
  51.         /*
  52.          *        List of Segments and their Owner
  53.          */
  54.  
  55.     struct SignalSemaphore SegOwnerSem;
  56.     struct MinList SegOwnerList;
  57.  
  58.         /*
  59.          *        Old AddTask()/RemTask()
  60.          */
  61.  
  62.     APTR __asm (*OLDAddTask)(register __a1 struct Task *task, register __a2 APTR initpc,
  63.                                      register __a3 APTR finalpc, register __a6 struct ExecBase *sysbase);
  64.     void __asm (*OLDRemTask)(register __a1 struct Task *task, register __a6 struct ExecBase *sysbase);
  65.  
  66.         /*
  67.          *        Old LoadSeg()/NewLoadSeg()/UnLoadSeg()/InternalLoadSeg()/
  68.          *        InternalUnLoadSeg()/CreateProc()/CreateNewProc()/RunCommand()/
  69.          *        SetProtection()
  70.          */
  71.  
  72.     BPTR __asm (*OLDLoadSeg)(register __d1 STRPTR name, register __a6 struct DosLibrary *DOSBase);
  73.     BPTR __asm (*OLDNewLoadSeg)(register __d1 STRPTR file, register __d2 struct TagItem *tags,
  74.                                          register __a6 struct DosLibrary *DOSBase);
  75.     BOOL __asm (*OLDUnLoadSeg)(register __d1 BPTR seglist, register __a6 struct DosLibrary *DOSBase);
  76.     BPTR __asm (*OLDInternalLoadSeg)(register __d0 BPTR fh, register __a0 BPTR table,
  77.                                                 register __a1 LONG *functionarray, register __a2 LONG *stack,
  78.                                                 register __a6 struct DosLibrary *dosbase);
  79.     BOOL __asm (*OLDInternalUnLoadSeg)(register __d1 BPTR seglist, register __a1 void (*freefunc)(),
  80.                                                   register __a6 struct DosLibrary *dosbase);
  81.     struct Process __asm *(*OLDCreateProc)(register __d1 STRPTR name, register __d2 LONG pri,
  82.                                                         register __d3 BPTR seglist, register __d4 LONG stacksize,
  83.                                                         register __a6 struct DosLibrary *dosbase);
  84.     struct Process __asm *(*OLDCreateNewProc)(register __d1 struct TagItem *tags,
  85.                                                             register __a6 struct DosLibrary *dosbase);
  86.     LONG __asm (*OLDRunCommand)(register __d1 BPTR seglist, register __d2 ULONG stacksize,
  87.                                          register __d3 STRPTR argptr, register __d4 ULONG argsize,
  88.                                          register __a6 struct DosLibrary *dosbase);
  89.     BOOL __asm (*OLDSetProtection)(register __d1 STRPTR name, register __d2 LONG mask,
  90.                                              register __a6 struct DosLibrary *dosbase);
  91.  
  92.         /*
  93.          *        Configuration
  94.          */
  95.  
  96.     struct muConfig Config;
  97.  
  98.         /*
  99.          *        Signals for Passwd File Notification and Consistency Check
  100.          */
  101.  
  102.     ULONG NotifySig;
  103.     ULONG ConsistencySig;
  104.  
  105.         /*
  106.          *        Security violation flag
  107.          */
  108.  
  109.     BOOL SecurityViolation;
  110.  
  111.         /*
  112.          *        MultiUser Volumes
  113.          */
  114.  
  115.     struct SignalSemaphore VolumesSem;
  116.     struct muVolume *Volumes;
  117.  
  118.         /*
  119.          *        Monitoring
  120.          */
  121.  
  122.     struct SignalSemaphore MonitorSem;
  123.     struct MinList MonitorList;
  124.     struct MsgPort *MonitorPort;
  125.  
  126.         /*
  127.          *        Task Control
  128.          */
  129.  
  130.     struct MinList Frozen;
  131.  
  132.         /*
  133.          *        LocaleInfo for logfile
  134.          */
  135.  
  136.     struct LocaleInfo LogInfo;
  137. };
  138.  
  139. #define LocaleBase muBase->LogInfo.li_LocaleBase
  140.  
  141. extern struct muBase *muBase;
  142.